home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Meeting Pearls 4
/
Meeting Pearls Vol. IV (1996)(GTI - Schatztruhe)[!].iso
/
Pearls
/
dev
/
Language
/
ace
/
include
/
Exec
/
execbase.h
< prev
next >
Wrap
C/C++ Source or Header
|
1995-10-07
|
8KB
|
227 lines
#ifndef EXEC_EXECBASE_H
#define EXEC_EXECBASE_H 1
/*
** execbase.h for ACE Basic
**
** Note: Translated to ACE by ConvertC2ACE
** @ MapMeadow Software, Nils Sjoholm
**
**
** Date: 09/02/95
**
**
*/
/*
** This are the StructPointer defines for execbase.h
*/
#ifndef ExecBasePtr
#define ExecBasePtr ADDRESS
#endif
/*
** End of StructPointer defines for execbase.h
*/
#ifndef EXEC_LISTS_H
#include <exec/lists.h>
#endif /* EXEC_LISTS_H */
#ifndef EXEC_INTERRUPTS_H
#include <exec/interrupts.h>
#endif /* EXEC_INTERRUPTS_H */
#ifndef EXEC_LIBRARIES_H
#include <exec/libraries.h>
#endif /* EXEC_LIBRARIES_H */
#ifndef EXEC_TASKS_H
#include <exec/tasks.h>
#endif /* EXEC_TASKS_H */
/* Definition of the Exec library base structure (pointed to by location 4).
** Most fields are not to be viewed or modified by user programs. Use
** extreme caution.
*/
STRUCT ExecBase
_Library LibNode /* Standard library node */
/******** Static System Variables ********/
SHORTINT SoftVer /* kickstart release number (obs.) */
SHORTINT LowMemChkSum /* checksum of 68000 trap vectors */
LONGINT ChkBase /* system base pointer complement */
ADDRESS ColdCapture /* coldstart soft capture vector */
ADDRESS CoolCapture /* coolstart soft capture vector */
ADDRESS WarmCapture /* warmstart soft capture vector */
ADDRESS SysStkUpper /* system stack base (upper bound) */
ADDRESS SysStkLower /* top of system stack (lower bound) */
LONGINT MaxLocMem /* top of chip memory */
ADDRESS DebugEntry /* global debugger entry point */
ADDRESS DebugData /* global debugger data segment */
ADDRESS AlertData /* alert data segment */
ADDRESS MaxExtMem /* top of extended mem, or null if none */
SHORTINT ChkSum /* for all of the above (minus 2) */
/****** Interrupt Related ***************************************/
STRING IntVects SIZE 192 /* 16*12 */
/****** Dynamic System Variables *************************************/
TaskPtr ThisTask /* pointer to current task (readable) */
LONGINT IdleCount /* idle counter */
LONGINT DispCount /* dispatch counter */
SHORTINT Quantum /* time slice quantum */
SHORTINT Elapsed /* current quantum ticks */
SHORTINT SysFlags /* misc internal system flags */
BYTE IDNestCnt /* interrupt disable nesting count */
BYTE TDNestCnt /* task disable nesting count */
SHORTINT AttnFlags /* special attention flags (readable) */
SHORTINT AttnResched /* rescheduling attention */
ADDRESS ResModules /* resident module array pointer */
ADDRESS TaskTrapCode
ADDRESS TaskExceptCode
ADDRESS TaskExitCode
LONGINT TaskSigAlloc
SHORTINT TaskTrapAlloc
/****** System Lists (private!) ********************************/
_List MemList
_List ResourceList
_List DeviceList
_List IntrList
_List LibList
_List PortList
_List TaskReady
_List TaskWait
STRING SoftInts SIZE 80 /* 5*16 */
/****** Other Globals *******************************************/
STRING LastAlert SIZE 16 /* 4*SIZEOF(LONGINT) */
/* these next two variables are provided to allow
** system developers to have a rough idea of the
** period of two externally controlled signals --
** the time between vertical blank interrupts and the
** external line rate (which is counted by CIA A's
** "time of day" clock). In general these values
** will be 50 or 60, and may or may not track each
** other. These values replace the obsolete AFB_PAL
** and AFB_50HZ flags.
*/
BYTE VBlankFrequency /* (readable) */
BYTE PowerSupplyFrequency /* (readable) */
_List SemaphoreList
/* these next two are to be able to kickstart into user ram.
** KickMemPtr holds a singly linked list of MemLists which
** will be removed from the memory list via AllocAbs. If
** all the AllocAbs's succeeded, then the KickTagPtr will
** be added to the rom tag list.
*/
ADDRESS KickMemPtr /* ptr to queue of mem lists */
ADDRESS KickTagPtr /* ptr to rom tag queue */
ADDRESS KickCheckSum /* checksum for mem and tags */
/****** V36 Exec additions start here **************************************/
SHORTINT ex_Pad0 /* Private internal use */
LONGINT ex_LaunchPoint /* Private to Launch/Switch */
ADDRESS ex_RamLibPrivate
/* The next LONGINT contains the system "E" clock frequency,
** expressed in Hertz. The E clock is used as a timebase for
** the Amiga's 8520 I/O chips. (E is connected to "02").
** Typical values are 715909 for NTSC, or 709379 for PAL.
*/
LONGINT ex_EClockFrequency /* (readable) */
LONGINT ex_CacheControl /* Private to CacheControl calls */
LONGINT ex_TaskID /* Next available task ID */
STRING ex_Reserved1 SIZE 20 /* 5*SIZEOF(LONGINT) */
ADDRESS ex_MMULock /* private */
STRING ex_Reserved2 SIZE 12 /* 3*SIZEOF(LONGINT) */
/****** V39 Exec additions start here **************************************/
/* The following list and data element are used
* for V39 exec's low memory handler...
*/
MinList ex_MemHandlers /* The handler list */
ADDRESS ex_MemHandler /* Private! handler pointer */
END STRUCT
/****** Bit defines for AttnFlags (see above) ******************************/
/* Processors and Co-processors: */
#define AFB_68010 0 /* also set for 68020 */
#define AFB_68020 1 /* also set for 68030 */
#define AFB_68030 2 /* also set for 68040 */
#define AFB_68040 3
#define AFB_68881 4 /* also set for 68882 */
#define AFB_68882 5
#define AFB_FPU40 6 /* Set if 68040 FPU */
/*
* The AFB_FPU40 bit is set when a working 68040 FPU
* is in the system. If this bit is set and both the
* AFB_68881 and AFB_68882 bits are not set, then the 68040
* math emulation code has not been loaded and only 68040
* FPU instructions are available. This bit is valid *ONLY*
* if the AFB_68040 bit is set.
*/
#define AFB_PRIVATE 15 /* Just what it says */
#define AFF_68010 (1&)
#define AFF_68020 (2&)
#define AFF_68030 (4&)
#define AFF_68040 (8&)
#define AFF_68881 (16&)
#define AFF_68882 (32&)
#define AFF_FPU40 (64&)
#define AFF_PRIVATE (32768&)
/* #define AFB_RESERVED8 8 */
/* #define AFB_RESERVED9 9 */
/****** Selected flag definitions for Cache manipulation calls **********/
#define CACRF_EnableI (1&) /* Enable instruction cache */
#define CACRF_FreezeI (2&) /* Freeze instruction cache */
#define CACRF_ClearI (8&) /* Clear instruction cache */
#define CACRF_IBE (16&) /* Instruction burst enable */
#define CACRF_EnableD (256&) /* 68030 Enable data cache */
#define CACRF_FreezeD (512&) /* 68030 Freeze data cache */
#define CACRF_ClearD (2048&) /* 68030 Clear data cache */
#define CACRF_DBE (4096&) /* 68030 Data burst enable */
#define CACRF_WriteAllocate (8192&) /* 68030 Write-Allocate mode
(must always be set!) */
#define CACRF_EnableE (1073741824&) /* Master enable for external caches */
/* External caches should track the */
/* state of the internal caches */
/* such that they do not cache anything */
/* that the internal cache turned off */
/* for. */
#define CACRF_CopyBack (2147483648&) /* Master enable for copyback caches */
#define DMA_Continue (2&) /* Continuation flag for CachePreDMA */
#define DMA_NoModify (4&) /* Set if DMA does not update memory */
#define DMA_ReadFromRAM (8&) /* Set IF DMA goes *FROM* RAM TO device */
#endif /* EXEC_EXECBASE_H */